function State(){
	var _user = new User();
	var _error = false;
	var _errorMassage = "";
	var _asynchOperationCount = 0;
	var _asynchComplete = true;
	var _showFBLoginButton = false;

	// Define our getters and setters
	this.addProperties( {
		user : {
			get : function() {
				return _user;
			},
			set : function(val) {
				_user = val;
				this.Notify(val, "user");
			}
		},
		showFBLoginButton : {
			get : function() {
				return _showFBLoginButton;
			},
			set : function(val) {
				_showFBLoginButton = val;
				this.Notify(val, "showFBLoginButton");
			}
		},
		error : {
			get : function() {
				return _error;
			},
			set : function(val) {
				_error = val;
				this.Notify(val, "error");
			}
		},
		errorMassage : {
			get : function() {
				return _errorMassage;
			},
			set : function(val) {
				_errorMassage = val;
				this.Notify(val, "errorMassage");
			}
		},
		asynchOperationCount : {
			get : function() {
				return _asynchOperationCount;
			},
			set : function(val) {
				_asynchOperationCount = val;
				this.Notify(val, "asynchOperationCount");
			}
		},
		asynchComplete : {
			get : function() {
				return _asynchComplete;
			},
			set : function(val) {
				_asynchComplete = val;
				this.Notify(val, "asynchComplete");
			}
		}
	})
}

State.prototype = new Subject();